import Vue from "vue"
import VueRouter from "vue-router"

Vue.use(VueRouter)

//解决编程式路由往同一地址跳转时会报错的情况
const originalPush = VueRouter.prototype.push
const originalReplace = VueRouter.prototype.replace
//push
VueRouter.prototype.push = function push(location, onResolve, onReject) {
    if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
    return originalPush.call(this, location).catch(err => err)
}
//replace
VueRouter.prototype.replace = function push(location, onResolve, onReject) {
    if (onResolve || onReject) return originalReplace.call(this, location, onResolve, onReject)
    return originalReplace.call(this, location).catch(err => err)
}

const routes = [
  {                                               
    path: "/",
    redirect: "/home"
  },
  {                                               
    path: "/home",
    component: () => import("@/views/home")
  },
  {
    path: "/playlist",
    component: () => import("@/views/playList/index")
  },
  {
    path: "/leaderboard",
    component: () => import("@/views/leaderboard/index")
  },
  {
    path: "/song",
    component: () => import("@/views/songs/index")
  },
  {
    path: "/album",
    component: () => import("@/views/albumList/index")
  },
  {
    path: "/user",
    redirect: "/user/home",
    component: () => import("@/views/user/index"),
    children: [
      { path: 'home', component: () => import("@/views/user/index") },
      { path: 'song/rank', component: () => import("@/views/user/index") }
    ]
  }
]
export default new VueRouter({
  routes: routes
})


